.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Historical remark, aeb, 2004-06-05
.TH getuid 2 2024-05-02 "Linux man-pages 6.9.1"
.SH NAME
getuid, geteuid \- get user identity
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <unistd.h>
.P
.B uid_t getuid(void);
.B uid_t geteuid(void);
.fi
.SH DESCRIPTION
.BR getuid ()
returns the real user ID of the calling process.
.P
.BR geteuid ()
returns the effective user ID of the calling process.
.SH ERRORS
These functions are always successful
and never modify
.\" https://www.austingroupbugs.net/view.php?id=511
.\" 0000511: getuid and friends should not modify errno
.IR errno .
.SH STANDARDS
POSIX.1-2008.
.SH HISTORY
POSIX.1-2001, 4.3BSD.
.P
In UNIX\ V6 the
.BR getuid ()
call returned
.IR "(euid << 8) + uid" .
UNIX\ V7 introduced separate calls
.BR getuid ()
and
.BR geteuid ().
.P
The original Linux
.BR getuid ()
and
.BR geteuid ()
system calls supported only 16-bit user IDs.
Subsequently, Linux 2.4 added
.BR getuid32 ()
and
.BR geteuid32 (),
supporting 32-bit IDs.
The glibc
.BR getuid ()
and
.BR geteuid ()
wrapper functions transparently deal with the variations across kernel versions.
.P
On Alpha, instead of a pair of
.BR getuid ()
and
.BR geteuid ()
system calls, a single
.BR getxuid ()
system call is provided, which returns a pair of real and effective UIDs.
The glibc
.BR getuid ()
and
.BR geteuid ()
wrapper functions transparently deal with this.
See
.BR syscall (2)
for details regarding register mapping.
.SH SEE ALSO
.BR getresuid (2),
.BR setreuid (2),
.BR setuid (2),
.BR credentials (7)
